Amazon Rekognitionのオブジェクト認識で画像の大きさがどのように影響するか確認してみた #reinvent
はじめに
清水です。re:Invent2016で発表された新サービスAmazon Rekognitionでは、画像ファイルを入力として認識結果が返されます。 Rekognitionでオブジェクト認識をする際に、この入力となる画像ファイルの「大きさ」、つまり解像度や画素がどのように影響するのか、例えば小さめの画像でも上手くオブジェクト/シーンの認識ができるかどうかが気になりましたので、確認してみました。
やってみた
確認方法
実際にAmazon Rekognitionに異なる解像度の画像ファイルを入力させて、結果を比較してみます。
確認に使用したファイルはAmazon RekognitionのDemoページ、Object and scene detectionにあるスケボーの画像です。
画像ファイルを確認して見たところ、解像度は1200x800でした。ここから元の画像を縮小して、75%から10%の以下それぞれの画像ファイルを作成、Rekognitionに入力して認識結果を比較してみます。
- 75% : 900x600
- 50% : 600x400
- 25% : 300x200
- 15% : 180x120
- 10% : 120x80
なお、Rekognitionでは入力画像のサイズは幅、高さともに80ピクセル以上である必要があります。これより小さい画像を入力してしまうと、以下のようにエラーがでますので注意しましょう。
結果
各解像度でのRekognitionでの認識結果を以下の表にまとめます。デフォルトの認識率50%以上の要素を集計しています。また表はoriginalの解像度の認識率の大きい順にソートしています。
この画像の特徴である(と私は考えている)、「スケボー」については、25%(300x200)以下の解像度では認識されない(=50%以下の認識率)となっています。他にも車関係の多くの認識要素についても、25%(300x200)以下で認識率が下がっていることがわかります。
25%(300x200)以下の解像度でも認識できているものは、道や交差点と言った大域的に見れる要素が多いかと思います。補足項目として実際に入力した低解像度の画像も例示しますが、このぐらいの解像度になると人の目で見ても細かいものは認識が難しいので、おおよそ人間が認識できるものまでは、Rekognitionも認識できる、という捉え方で大丈夫ではないかと思います。
またBoardwalk(遊歩道)など道に関する要素の一部は、解像度を50%(600x400)まで小さくすることで少し認識率が上がる結果となったのも興味深い点です。
original (1200x800) | 75%(900x600) | 50%(600x400) | 25%(300x200) | 15%(180x120) | 10%(120x80) | |
---|---|---|---|---|---|---|
Person | 99.25 | 99.25 | 99.19 | 51.68 | 58.43 | 53.18 |
People | 99.25 | 99.25 | 99.19 | |||
Human | 99.24 | 99.24 | 99.18 | |||
Skateboard | 99.24 | 99.24 | 99.26 | |||
Sport | 99.24 | 99.24 | 99.26 | |||
Parking Lot | 97.44 | 97.37 | 97.66 | 50.74 | ||
Parking | 97.44 | 97.37 | 97.66 | 50.74 | ||
Automobile | 87.81 | 78.24 | 78.32 | |||
Car | 87.81 | 78.24 | 78.32 | |||
Vehicle | 87.81 | 78.24 | 78.32 | |||
Sedan | 82.21 | 77.37 | 78.32 | |||
Boardwalk | 78.63 | 83.71 | 86.49 | 62.11 | 51.61 | |
Path | 78.63 | 83.71 | 86.49 | 62.11 | 51.61 | 50.71 |
Pavement | 78.63 | 83.71 | 86.49 | 62.11 | 51.61 | |
Sidewalk | 78.63 | 83.71 | 86.49 | 62.11 | 51.61 | |
Walkway | 78.63 | 83.71 | 86.49 | 62.11 | 51.61 | 50.71 |
Intersection | 76.64 | 75.07 | 75.76 | 90.4 | 82.95 | 67.04 |
Road | 76.64 | 75.07 | 75.76 | 90.4 | 82.95 | 87.71 |
Coupe | 71.48 | 57.57 | 60.67 | |||
Sports Car | 71.48 | 57.57 | 60.67 | |||
Building | 67.84 | 66.34 | 53.76 | 59.99 | 53.29 | 52.38 |
City | 62.92 | 61.79 | 63.82 | 56.5 | 55.86 | 61.35 |
Downtown | 62.92 | 63.05 | 71.31 | 72.21 | 84.67 | 61.35 |
Urban | 62.92 | 61.79 | 63.82 | 56.5 | 55.86 | 52.9 |
Neighborhood | 62.04 | 63.05 | 71.31 | 72.21 | 84.67 | 51.14 |
Town | 62.04 | 63.05 | 71.31 | 72.21 | 84.67 | 87.71 |
Suv | 61.25 | 51.35 | 52.92 | |||
Street | 56.25 | 56.35 | 55.82 | 68.71 | 56.31 | 87.71 |
Metropolis | 53.99 | 54.06 | 53.63 | 50.69 | 50.86 | |
Housing | 52.98 | 52.55 | 51.83 | |||
Office Building | 52.36 | 52.67 | 59.99 | 53.29 | 52.38 | |
Engine | 51.11 | |||||
Machine | 51.11 | |||||
Motor | 51.11 | |||||
Apartment Building | 51.06 | 51.2 | 58.33 | 51.14 | ||
High Rise | 51.06 | 51.2 | 58.33 | 51.14 | ||
Pedestrian | 50.65 | 50.55 | 51.05 | 51.68 | 58.43 | 53.18 |
Architecture | 50.85 | |||||
Court | 50.85 | |||||
Freeway | 52.21 | |||||
Highway | 52.21 | |||||
Jaguar Car | 54.17 | 74.8 | ||||
License Plate | 51.76 | 56.21 | ||||
License | 51.76 | 56.21 | ||||
Mustang | 56.97 | |||||
Text | 51.76 | 56.21 |
補足 − 実際に入力した低解像度の入力ファイル
25%(300x200)
15%(180x120)
10%(120x80)
まとめ
画像解析サービスであるAmazon Rekognitionのオブジェクト認識で画像の解像度がどのように影響するか、サンプルとして例示されているスケボーをしている画像を用いて複数解像度の画像ファイルを作成し、実際に認識させてみました。
結果としては、ほとんどの要素は解像度が高いオリジナルの画像の方が認識率が高い結果となりました。しかし一部の項目については解像度をある程度まで落としたほうが認識率が上がるという興味深い点もありました。また人が見ても認識しづらいぐらいの小ささになると、Rekognitionでも認識されない(認識率が低くなる結果になりました。
異なる傾向の画像でのオブジェクト認識や表情分析、顔の類似度比較においても解像度の違いが影響するのか、また他にも画像サイズを小さくすることで認識にかかる時間が減少するのか、など異なる視点での確認も進めていきたいと思います。